package com.waylau.spring.boot.blog.service;

import com.waylau.spring.boot.blog.domain.Forget;
import com.waylau.spring.boot.blog.domain.Genre;
import com.waylau.spring.boot.blog.domain.HotSearch;
import com.waylau.spring.boot.blog.domain.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Collection;

/**
 * Gener 服务接口.
 * 
 * @since 1.0.0 2017年3月18日
 * @author <a href="https://waylau.com">Way Lau</a>
 */
public interface GenreService {


	/**
	 * 保存大类
	 * @param genre
	 * @return
	 */
	Genre save(Genre genre);


	/**
	 * 删除
	 * @param genre
	 * @return
	 */
	void delete(Genre genre);

	/**
	 * 获取可用的
	 * @return
	 */
	List<Genre> findAvailableGenres();

	/**
	 * 获取可用的
	 * @return
	 */
	Page<Genre> findAvailableGenres(String name,Pageable pageable);

	/**
	 * 查询指定ID
	 * @param id
	 * @return
	 */
	Genre findGenreById(Long id);

	/**
	 * 随机获取n条genre
	 * @param n
	 * @return
	 */
	List<Genre> findRandomGenres(Integer n);

	/**
	 * 随机获取n条genre
	 * @param n
	 * @return
	 */
	List<Genre> findRandomGenresAndIdNotIn(Collection c,Integer n);
}
